
const API=require('../http/api')

//检测微信登录状态的方法
function checkSession() {
   return new Promise((resolve,reject)=>{
    wx.checkSession({
      success: (res) => {
        resolve(true)
      },
      fail:(error)=>{
        resolve(false)
      }
    })
   })
}

//检测登录状态是否合法
async function checkHasedLogined() {
   
     //1.判断本地没有没token ,直接返回false
     const token=wx.getStorageSync('token')
     if(!token) {
       return false
     }
     //2.判断本地token是否失效,如果失效，也返回false,并清除本地token
     const isToken=await API.checkTokenApi(token)
     if(isToken.code!==0) {
      //清除本地token
      wx.removeStorageSync('token')
      //返回false
      return false;
     }
     //3.判断微信登录态,如果微信登录态失效，也返回false,也清除本地token
     //调用检测登录状态的方法
     const isValid=await checkSession()
     if(!isValid) {
      //清除本地token
      wx.removeStorageSync('token')
      //返回false
      return false;
     }
    return true;
}
//授权登录方法
function authorize() {
  return new Promise((resolve,reject)=>{
    wx.login({
      async success(res) {
         console.log('code码：',res)
         const {code}=res;
         //调用后台的登录注册接口
        const result=await API.autoRegAndLoginApi(code)
        
        if(result.code===0) {
          wx.setStorageSync('token',result.data.token)
          wx.setStorageSync('uid',result.data.uid)
        }
        resolve(result)
       },
       fail(error) {
         reject(error)
       }
     })
  })
}

module.exports={
  authorize,
  checkHasedLogined
}
 